Method and system for electronically determining dynamic traffic information

ABSTRACT

A method of and system for determining a path traveled by a vehicle in a road network having a plurality of road segments connected into a plurality of paths that includes obtaining a current location measurement having an accuracy range, determining the road segments located within this accuracy range of the current location measurement to form a set of current possible positions for the vehicle, retrieving a set of stored possible paths for the vehicle, generating a new set of possible paths based on the set of current possible positions and the set of stored possible paths, and storing the new set of possible paths as the set of stored possible paths.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is the National Stage of InternationalApplication No. PCT/US02/15740, filed May 17, 2002, which claims thebenefit of U.S. Provisional Application Ser. No. 60/293,829, filed May25, 2001, the entire content of which is incorporated herein byreference, PCT/US02/15740 is a continuation of U.S. application Ser. No.10/061,784, filed Jan. 31, 2002, now U.S. Pat. No. 6,560,532, which alsoclaims the benefit of U.S. Provisional Application No. 60/293,829, filedMay 25, 2001.

BACKGROUND

1. Field of the Invention

The present invention generally relates to a system and method fordetermining dynamic traffic information. More particularly, the presentinvention relates to generating dynamic traffic information based onlocational measurements.

2. Description of the Related Art

Two kinds of traffic information have traditionally been gathered:qualitative data and quantitative data. Qualitative data is typicallygathered through reports from traffic helicopters or traveler call-ins.Quantitative data is usually gathered by public agencies, such as statedepartments of transportation, via fixed installation surveillancesystems. The most common fixed installation surveillance systems useinductive loops embedded in roadways. These systems can be expensive toinstall and can require expensive, on-going maintenance.

Other kinds of surveillance systems that use radar guns, microwaves,video surveillance, or electronic toll tags have been proposed or are indevelopment. All of these surveillance systems typically have highinstallation costs because they require equipment to be installed alongthe roads. Additionally, these surveillance systems typically have highoperating costs due to ongoing maintenance costs and the cost ofbandwidth needed to transmit signals from the surveillance systems to acentral office. Furthermore, these surveillance systems typicallyrequire installation on public property, which limits the ability ofprivate companies to install and operate such surveillance systems.Because surveillance systems are typically expensive to install andoperate, use of these systems is typically limited to freeway or highwaysurveillance only.

One alternative to fixed installation surveillance systems uses probes,such as electronic devices, to gather quantitative data about thevehicles in which the probes are located. However, such probe systemshave traditionally faced two primary limitations. The first limitationis a lack of sufficient numbers of probes from which to gatherinformation. In particular, insufficient numbers of probes limits theability of a system to generate information for large numbers ofstreets. The second limitation is the difficulty of determining theparticular roads on which the probe travels. More particularly, thedifficulty of placing a vehicle on a particular road can limit theaccuracy of the information gathered about the vehicle.

The recent development of location systems for determining the positionof a cellular phone or other electronic device addresses the firstlimitation and allows for the development of a probe system with muchgreater capabilities than previously possible. In particular, trackingthe increasing number of cell phones can overcome the first limitationof insufficient numbers of probes. By tracking cell phones, a probesystem can track thousands of probes simultaneously over a local roadnetwork.

However, with the current location systems available, the secondlimitation, the difficulty of determining the particular roads on whichthe probe travels, is a major problem. Current systems typically canonly locate a phone within a radius of about 50 meters to about 300meters, depending on the technology used, atmospheric conditions, andthe specific location of the phone. Accordingly, locating a phone usingcurrent systems presents a serious challenge for a probe system becausea radius of about 300 meters can include a very large number of roads.Furthermore, present approaches to probe systems generally depend onknowing the location of the vehicle to within about 5 meters to about 10meters.

SUMMARY

The present invention relates to a method of and system for determininga path traveled by a vehicle in a road network having a plurality ofroad segments connected into a plurality of paths. In one embodiment ofthe present invention, a current location measurement having an accuracyrange is obtained for a vehicle. Road segments located within thisaccuracy range of the current location measurement are then determinedto form a set of current possible positions for the vehicle. Next, a setof stored possible paths for the vehicle are retrieved. A new set ofpossible paths are then generated based on the set of current possiblepositions and the set of stored possible paths. The new set of possiblepaths are then stored as the set of stored possible paths.

In another embodiment, a system configured to determine a path traveledby a vehicle along road segments in a road network includes a processorand a database. The processor can be configured to receive a currentlocation measurement for the vehicle, determine the road segmentslocated within this accuracy range of the current location measurementto form a set of current possible positions for the vehicle, andgenerate a new set of possible paths based on the set of currentpossible positions and a set of stored possible paths for the vehicle.The database can be configured to store a set of stored possible pathsfor the vehicle, and store a new set of possible paths as the set ofstored possible paths.

DESCRIPTION OF THE DRAWING FIGURES

The present invention can be best understood by reference to thefollowing detailed description taken in conjunction with theaccompanying drawing figures, in which like parts may be referred to bylike numerals:

FIG. 1 shows an exemplary road network that can be used with the presentinvention;

FIG. 2 depicts an exemplary embodiment of a system that can be used togenerate traffic information;

FIG. 3 is a flow chart depicting another exemplary embodiment of asystem that can be used to generate traffic information;

FIG. 4 is a flow chart depicting an exemplary embodiment of steps thatcan be performed by a path generator;

FIG. 5 is an exemplary map and table depicting a process of generating anew set of possible paths for a vehicle;

FIG. 6 depicts an exemplary graphical result of generating a pathtraveled by a vehicle;

FIG. 7 is a flow chart depicting another exemplary embodiment of stepsthat can be performed by a path generator;

FIG. 8 is a flow chart depicting another exemplary embodiment of asystem that can be used to generate traffic information;

FIG. 9 is a flow chart depicting another exemplary embodiment of stepsthat can be performed by a path generator;

FIG. 10 is a flow chart depicting another exemplary embodiment of stepsthat can be performed by a path generator;

FIG. 11 is a flow chart depicting another exemplary embodiment of asystem that can be used to generate traffic information;

FIG. 12 is a flow chart depicting another exemplary embodiment of asystem that can be used to generate traffic information;

FIG. 13 depicts exemplary fields that can be stored as probe data; and

FIG. 14 depicts an exemplary embodiment of a system that can be used toretrieve generated traffic information.

DETAILED DESCRIPTION

The present invention provides a method and apparatus for determiningdynamic traffic information. In the following description, numerousdetails are set forth in order to enable a thorough understanding of thepresent invention. However, it will be understood by those of ordinaryskill in the art that these specific details are not required in orderto practice the invention. Further, well-known elements, devices,process steps and the like are not set forth in detail in order to avoidobscuring the present invention.

Although the invention has been described in conjunction with particularembodiments, it will be appreciated that various modifications andalterations may be made by those skilled in the art without departingfrom the spirit and scope of the invention. The invention is not to belimited by the foregoing illustrative details, but rather is to bedefined by the appended claims.

With reference to FIG. 1, an exemplary road network 100 is shown. Roadnetwork 100 can include road segments A, B, C, D, E, F, G, H, I, J, K,L,M, N, O, P, and Q, each of which can be defined as a segment of roadbetween two points. These points can be associated with interruptions ina road, such as where two roads meet (e.g., intersections), where tworoads cross (e.g., bridges or tunnels), where a lane is added to orremoved from a freeway, and the like. In an urban area, road segmentscan generally be short, on the order of 100 meters.

Each road segment can have information associated with it, such as itsgeographical location to within about 10 meters to about 20 meters, andcharacteristics such as curves in the road segment, whether a roadsegment is one-way, and the like. Presently, commercial map data canprovide a geographical location to within about 10 meter to about 20meter accuracy. Furthermore, this commercial map data can be used togenerate a road network 100 having road segments. As described belowwith regard to FIG. 11, this commercial map data can be used to produceroad network data 302.

In addition, each road segment can have a minimum travel time associatedwith it, which corresponds to the minimum amount of time that a vehiclecan travel over the road segment. For instance, road segments havingturns, traffic signals, interruptions, and the like, may have longerminimum travel times than road segments located on a freeway, highway,and the like. However, road segments may not have minimum travel timesassociated with them in all applications.

According to various embodiments of the present invention, trafficinformation can be generated for road network 100. As described belowwith regard to various embodiments of the present invention, trafficinformation can be generated by aggregating the movements of a largenumber of electronic devices associated with vehicles, such as cellularphones, Global Positioning System (GPS) receivers, and the like, orvehicles themselves based on positional measurements. Furthermore, withregard to various embodiments of the present invention, this trafficinformation can be generated based on positional measurements ofarbitrary accuracy.

With reference to FIG. 2, an exemplary embodiment of a system 200 thatcan be used to generate traffic information is shown. System 200 caninclude processor 202 and database 204. Processor 202 can includevarious processing capabilities and sub-processors, such as pathgenerator 208, road segment processor 210, and the like, as describedmore fully below. However, it should be recognized that each of thesesub-processors and processing capabilities can be configured as separateprocessors in some applications.

In the present embodiment, database 204 can store various kinds of data,such as the data included in current location measurement 212, currentpossible positions 214, stored possible paths 216, road segment database218, traffic information database 220, and the like, as described morefully below. However, it should be recognized that the above data can bestored in separate databases in some applications.

With reference to FIG. 3, an exemplary embodiment of system 200 is shownalong with location measurement provider 300 and road network data 302.In particular, location measurement provider 300 can provide a currentlocation measurement 212 (FIG. 2) to path generator 208 in system 200.Location measurement provider 300 can use various devices and methods toprovide current location measurement 212. However, current locationmeasurement 212 can be received and processed by system 200 independentof the devices and methods used by location measurement provider 300 toobtain current location measurement 212.

Some examples of devices that location measurement provider can use toobtain current location measurement 212 can include cellular phones,in-vehicle navigation systems having two-way communications, and thelike. For example, an in-vehicle navigation system can be used thatincludes a GPS receiver and a wireless radio modem that can report acurrent position back to a base station.

Location measurement provider 300 can use various methods to obtaincurrent location measurements 212. One exemplary method, commonlyassociated with cellular phones, that can be used to obtain currentlocation measurement 212 is through signal profiling, in which theunique characteristics of a received signal are compared against adatabase of previous measurements at known locations to calculate theposition. Another exemplary well-known method of obtaining a currentlocation measurement 212 includes using angle of arrival measurements,in which a signal from a vehicle is measured at two or more antennas,and the position of the vehicle is found by triangulation.

Another exemplary method that can be used to obtain a current locationmeasurement 212 includes using time of arrival measurements, in whichthe location of a handset is determined by comparing the trip timestransmitted from the handset to two or more base stations. Additionally,another exemplary method includes using a GPS. In particular, a handsetuses a GPS to locate itself and sends its location to a base station.

Each of the above-described methods have been used with cellular phonesand other devices to provide locations of these devices. Accordingly,the above-described methods can be used with all of the major mobiletelephone standards used for cellular phones, such as GSM, CDMA, 3rdgeneration networks, analog, and the like, with the exception ofGPS-assisted location systems that require GPS-equipped handsets.

Other methods that can be used to obtain current location measurementsinclude in-vehicle navigation systems, which typically use GPS fordetermining location, and vehicle identification systems, whichtypically use roadside detectors to identify a vehicle. Some vehicleidentification systems can use video processing, electronic toll tags,and vehicle signatures measured using inductive loops, laser guns, andradar guns.

According to the present embodiment, current location measurements 212can be obtained using one or a combination of the above-describedmethods, mobile telephone standards, and vehicle identification systems,or any other location system that can generate a series of locations fora vehicle. Each current location measurement 212 can include informationsuch as identification of the vehicle (ID), a timestamp, x and ycoordinates, and the like. However, it should be recognized that currentlocation measurements 212 can include coordinates only or anycombination of information about the vehicle or its location.

In the present embodiment, road network data 302 can be provided to pathgenerator 208 in system 200. Road network data 302 can includeinformation about road segments (FIG. 1) and connections between them.

Path generator 208 can use both road network data 302 and currentlocation measurement 212 from location measurement provider 300 togenerate a set of stored possible paths 216 (FIG. 2) that can be used toprovide information about road segments (FIG. 1) traveled by a vehicle.Information regarding the road segments traveled by a vehicle can bestored in road segment database 218, which can also store informationfrom multiple vehicles about various road segments.

In the present embodiment, because information about road segmentsobtained from one vehicle, such as travel time, may not necessarily berepresentative of information from a collection of vehicles travelingalong the same road segments, information from road segment database 218can be processed by road segment processor 210 to produce data such asaverage travel time for a road segment, median travel time for a roadsegment, distribution of travel times for a road segment, minimum traveltime for a road segment, and the like. This data can be stored intraffic information database 220. Furthermore, the data in trafficinformation database can be continuously updated to reflect new dataabout a road segment such as average travel time for a road segment,median travel time for a road segment, distribution of travel times fora road segment, minimum travel time for a road segment, and the like, asnew data is stored in road segment database 218 and processed by roadsegment processor 210.

With reference to FIG. 4, an exemplary embodiment of steps that can beperformed by path generator 208 are shown. Generally, path generator 208can use a sequence of current location measurements 212 (FIG. 2) for aparticular vehicle to determine the path traveled by the vehicle througha road network 100 (FIG. 1). More particularly, in step 400, currentlocation measurement 212 (FIG. 2) having an accuracy range can beobtained from a location measurement provider 300 (FIG. 3).

Next, in step 402, road segments (FIG. 1) located within this accuracyrange of current location measurement 212 can be determined andaggregated to form a set of current posssible positions 402 for thevehicle. For example, road network data 302 (FIG. 3) can be searched todetermine the road segments having at least one point located at adistance from the current location measurement 212 that is less than orequal to the specified accuracy.

Following step 402, a set of stored possible paths 216 (FIG. 2) can beretrieved in 404 from database 204 (FIG. 2) in step 404. This set ofstored possible paths 216 can be used with the set of current possiblepositions 402 to generate a new set of possible paths in step 406.

For example, with reference to FIG. 5, a new set of possible paths canbe generated by obtaining a current location measurement 212 having aparticular accuracy range at time 1. Road segments A, B, and C can beidentified as road segments within this accuracy range and stored as aset of current possible positions (step 402). Because this is the firstcurrent location measurement 212 obtained in this example, each roadsegment can be stored in the set of stored possible paths 216.

In the current example, at time 4, current location measurement 212having a particular accuracy range can be obtained. Road segments B, C,D and E can be identified as road segments within this accuracy rangeand stored as a set of current possible positions. The set of storedpossible paths 216 can then be retrieved and each of these paths can beextended to each current possible position that can be reached from thepath. More particularly, in the present example, starting from path A,the vehicle can move onto C, B, D by way of B, and E by way of B.Accordingly, path A can be extended to each of these road segments tocreate the new set of possible paths AB, AC, ABD and ABE. Furthermore,from path B, the vehicle can move onto road segments D and E, but thevehicle cannot move onto road segment C. Accordingly, path B can beextended to each of these road segments to create the new set ofpossible paths BB (since the vehicle may not have yet left link B), BDand BE. Moreover, from path C, the vehicle can only move onto C, so pathC can be extended to become the new set of possible paths CC.

In the present example, the new set of possible paths is shown in thesecond column of the table in FIG. 5. This set includes AC, AB, ABE,ABD, BB, BE, BD, and CC, and can be saved as the set of stored possiblepaths. Next, at time 8, current location measurement 212 having aparticular accuracy range can be obtained. Road segments C, E, F, and Gcan be identified as road segments within this accuracy range and storedas a set of current possible positions. The set of stored possible paths216 can then be retrieved and each of these paths can be extended toeach current possible position that can be reached from the path. Moreparticularly, in the present example, a new set of possible paths can begenerated as shown in the third column of the table in FIG. 5. Each ofthe paths from the second column can be extended except paths ABD andBD. From road segment D, the final road segment in path ABD, it isimpossible to travel to links C, E, F, or G. Therefore, these paths areremoved from the new set of possible paths. The new set of possiblepaths can be stored as the set of stored possible paths.

Next, at time 12, current location measurement 212 having a particularaccuracy range can be obtained. Road segments F, H, and I can beidentified as road segments within this accuracy range and stored as aset of current possible positions. The set of stored possible paths 216can then be retrieved and each of these paths can be extended to eachcurrent possible position that can be reached from the path. Moreparticularly, in the present example, a new set of possible paths can begenerated as shown in the fourth column of the table in FIG. 5. Thisprocess can be continued until a single path is stored in the set ofstored possible paths, as shown graphically in FIG. 6. Referring back toFIG. 3, this single path can be stored in road segment database 218 andthe road segments can be processed by road segment processor 210.

In another example, a new set of possible paths can be generated in step406 by comparing the timestamps of the current location measurementsobtained in step 400. In particular, the timestamp of the originalcurrent location measurement processed for the vehicle can be subtractedfrom the timestamp of the current location measurement. The differenceis the available travel time. Next, a minimum travel time can becalculated for each sequence of road segments connecting the originalcurrent location measurement to the current location measurement. Eachsequence having a minimum travel time that is less than the availabletravel time can be included in a new path. In particular, a new path caninclude the old path, the connecting sequence of road segments, and thecurrent possible position. The newly created path may be added to thenew set of possible paths.

Alternatively, a new set of possible paths can be generated in step 406by subtracting the timestamp of a previous current location measurementprocessed for the vehicle from the current location measurement. Thedifference is the available travel time. Next, a minimum travel time canbe calculated for each sequence of road segments connecting the previouscurrent location measurement to the current location measurement. Eachsequence having a minimum travel time that is less than the availabletravel time can be included in a new path. In particular, a new path caninclude the old path, the connecting sequence of road segments, and thecurrent possible position. The newly created path may be added to thenew set of possible paths.

For instance, with reference again to FIG. 5, the available time, ordifference between timestamps 4 and 8, is 4 seconds. However, it isimpossible to travel from D to links C, E, F, or G in this availabletime. Accordingly, these paths cannot be included in the new set ofpossible paths.

In the present example, if a path can be extended to reach more than oneof the current possible positions, the path can be duplicated, and acopy can be extended to each of the current possible positions. Theseextended paths can be added to the new set of possible paths. If a pathcannot be extended to reach any of the current possible positions, thatpath is discarded. The new set of possible paths can then be examined tosee whether the vehicle's actual path can be determined.

In yet another example, a new set of possible paths can be generated instep 406 by using a combination of the examples described above. For anyof the above examples, the process of generating a new set of possiblepaths can be repeated until a single path is stored in the set of storedpossible paths, as shown graphically in FIG. 6. With reference again toFIG. 3, information about this single path can be stored in road segmentdatabase 218. In particular, information that can be stored about thissingle path can include a vehicle identification, a sequence of roadsegments in the single path, current possible positions used for pathdetermination, and the like. However, it should be recognized that notall of the information listed above may be stored in some applications.Instead, any combination of the above listed information can be stored,as appropriate for the application. In addition, the process ofgenerating a new set of possible paths can be performed for multiplevehicles and a single path for each of these multiple vehicles can bestored in road segment database 218.

The quantity of location measurements necessary to generate a singlepath depends on the accuracy of the current location measurementsobtained. As the inaccuracy of the current location measurementsincrease, the quantity of current location measurements necessary canincrease. For example, for a current location measurement obtained witha positional accuracy of about 0 to about 70 meters, a reasonable seriesof current location measurements can be obtained by taking measurementsabout every 2 to 5 seconds over about a 30-second interval. For apositional accuracy of about 80 to about 140 meters, the interval can beincreased, with about 60 seconds being a reasonable length. For apositional accuracy of about 150 to about 300 meters, the interval canbe increased to about 2 minutes or more in most cases. Accordingly, inone embodiment of the present invention, a current location measurementcan be taken about every 2 seconds over about a 60 second interval.

According to an exemplary application of the present invention, currentlocation measurements obtained with a positional accuracy of about 300meters can be used to accurately determine paths. Thus, accurate resultscan be produced with the present invention even with highly inaccurateinput data, in contrast to conventional mapping techniques thattypicially require at least about 10-meter, if not about 5-meter,accuracy.

In another exemplary application using about 10 meter accuracy and about1-second sampling intervals, 99.5% of major surface streets in Alamedaand Contra Costa Counties of California can be accurately mapped bytracking the path of a vehicle. Using an accuracy range of about 70meters and about 1-second sampling intervals, 92% of major surfacestreets in these counties can be accurately mapped by tracking the pathof a vehicle. Furthermore, even when the accuracy range is increased toabout 190 meters, 75% of major surface streets can be accurately mappedby tracking the path of a vehicle.

With reference now to FIG. 7, another exemplary embodiment of steps thatcan be performed by path generator 208 (FIG. 3) are shown. The presentembodiment is similar in many respects to the embodiment shown in FIG.4, except that the present embodiment includes filtering a currentlocation measurement in step 700. Although this filtering can beperformed by path generator 208, it can also be performed by a providerspecific filter 808, as shown in FIG. 8.

With reference again to FIG. 7, after a current location measurement hasbeen obtained in step 400, it can be filtered in step 700. In oneconfiguration, filtering can be performed for each current locationmeasurement obtained. Generally, the filter used in step 700 can bespecific to the current location measurement provider (FIG. 8) and caninclude a set of software routines that can perform tasks such as datatransformation, assigning an accuracy value, preliminary errorcorrection, data reduction, and the like. In some configurations, theremay be many filter processes running on one or multiple machines.

In the present embodiment, the format of the current locationmeasurement 212 (FIG. 2) obtained from location measurement provider 300(FIG. 8) can differ depending on the technology and software used by thecurrent location measurement provider. In particular, different currentlocation measurement providers can provide different formats such asdifferent sets of fields in current location measurement 212, differentencoding of current location measurement 212 in order to transmit theinformation to system 200, and the like. Accordingly, the filter in step700 can convert the current location measurements 212 from the locationmeasurement provider's format into a common format. For example, currentlocation measurements 212 can be converted such that they are referencedrelative to a geodetic datum, such as the WGS84 datum used by the GPSsystem, and the like. Furthermore, the converted current locationmeasurements 212 can be expressed in three-dimensional longitude andlatitude.

Although not required to practice the current invention, convertedcurrent location measurements 212 can further be converted fromthree-dimensional longitude and latitude to two dimensions using a mapprojection. For example, current location measurements 212 generatedrelative to a WGS84 geodetic datum can be converted to two-dimensionalcurrent location measurements 212 by using a stereographic mapprojection centered on a geographical center point of the road network100 (FIG. 1) being used.

In the present embodiment, filtering in step 700 can also includeassigning an accuracy value to the current location measurement obtainedin step 400. This accuracy value can be determined through empiricaltesting that is performed outside system 200 (FIG. 2) and is specific toa particular location measurement provider 300. Although empiricaltesting can be performed in many ways, one exemplary method can includecomparing the current location measurements 212 obtained from aparticular location measurement provider 300 with current locationmeasurements 212 obtained from a source that uses a known technology.For example, the accuracy of current location measurements obtained froma test cell phone can be determined by tracking the test cell phone in avehicle that is also equipped with a differential GPS receiver. Inparticular, the current location measurements collected from the testcell phone can be compared to the current location measurementscollected by the differential GPS receiver. The differences between thecurrent location measurements obtained from the test cell phone anddifferential GPS receiver can be used as an accuracy value for the testcell phone. In some cases, the accuracy value can be variable even for asingle location measurement provider 300. Depending on the technologyused by the location measurement provider 300 to obtain current locationmeasurements, supplemental information about each current locationmeasurement can be obtained, such as signal strength, number of basestations used, and the like. This supplemental information can be usedto assign separate accuracy values to each current location measurement212 obtained from the location measurement provider 300.

In the present embodiment, filtering in step 700 can also includeeliminating faulty current location measurements. In someconfigurations, filtering can be performed as each current locationmeasurement is obtained, while in other configurations current locationmeasurements obtained at different times can be filtered as a batch. Anexemplary method that can be used to eliminate faulty current locationmeasurements includes associating each current location measurement withprevious location measurements from the same vehicle. In particular, acurrent location measurement can be added to a sequence of previouslocation measurements for a vehicle and a set of tests can be applied todetermine if the current location measurement is faulty. For instance,if the current location measurement is too far away from the mostrecently obtained previous location measurement for the vehicle to haveactually traveled between these positions at a reasonable speed, thecurrent location measurement is faulty. In particular, if currentlocation measurement B is 200 meters away from previous locationmeasurement A, the difference between the timestamps for locations A andB is 1 second, and the accuracy is 50 meters, the vehicle must havetraveled at least 100 meters per second to reach location B. Becausethis rate is unrealistic, location B can be labeled as a faulty currentlocation measurement.

If a sequence of current location measurements are all marked as faultyor a large percentage of the recent current location measurements aremarked as faulty, further testing can be applied to the set of currentlocation measurements. After all current location measurements have beenexamined and after all of the current location measurements marked asfaulty have been removed from the set, the set of current locationmeasurements is assumed to be the correct sequence.

In the present embodiment, filtering in step 700 can also includeeliminating current location measurements obtained from non-vehiclesources. In particular, because system 200 (FIG. 2) can process currentlocation measurements from multiple vehicles and from various locationmeasurement providers, some of the current location measurements mayinadvertently include non-vehicle sources that may need to be eliminatedin order to reflect accurate traffic information along the road network.Accordingly, non-vehicle sources can be eliminated by detectingsequences of current location measurements that exhibit uncharacteristicvehicle behavior. A primary method that can be used to detectuncharacteristic vehicle behavior is to determine whether the source ismoving at a sufficient speed. If a source has not moved in severalminutes or if it is traveling consistently at a very slow speed, forexample, less than 3 mph, it can be removed from the set of sources usedto provide current location measurements. In particular, a source can beremoved by blocking the source's vehicle ID from system 200.

Although the present embodiment is described with various filterprocesses, it should be recognized that a single filter process or acombination of any of the filter processes can be used. Additionally, itshould be recognized that filter processes may not be used in someapplications.

With reference now to FIG. 9, another exemplary embodiment of steps thatcan be performed by path generator 208 (FIG. 3) are shown. The presentembodiment is similar in many respects to the embodiment shown in FIG.4, except that the present embodiment includes identifying a sub-path instep 900 and storing a set of shortened paths as the new set of possiblepaths in step 902.

In particular, in step 900, the new set of possible paths generated instep 406 can be analyzed to determine whether there is a sequence of oneor more road segments, such as a sub-path, that is common to all of thepaths in the new set of possible paths. For instance, the new set ofpossible paths can be examined to determine if there are two roadsegments, a first common road segment and a second common road segment,that appear in all the paths. If so, these two road segments representtwo known positions through which the vehicle passed. The road segmentsbetween these two known positions can then be examined to determine ifthese road segments are identical in each path in the new set ofpossible paths. If they are identical, there is a single commonsub-path, and the sub-path can be stored in road segment database 218(FIG. 3). Sub-paths from multiple vehicles can also be stored in roadsegment database 218. Although the above example describes two commonroad segments in a sub-path, it should be recognized that a single roadsegment that is common to all paths in the new set of possible paths canalso form a sub-path.

After a sub-path is identified, all paths in the new set of possiblepaths can be shortened by removing all road segments in the paths priorto the last common road segment. For instance, if a sub-path includes asingle common road segment, the road segments preceding this singlecommon road segment can be removed. Additionally, if a sub-path includesat least two common road segments, the road segments preceding the lastcommon road segment in the sub-path can be removed. In step 902, thisset of shortened paths can then be saved as the new set of possiblepaths. Next, in step 408, the new set of possible paths can be stored asthe set of stored possible paths.

With reference again to FIG. 5, table 502 shows a process of generatingnew sets of possible paths, including determining whether there is asequence of road segments, such as a sub-path, that is common to all ofthe paths in the new set of possible paths. In particular, the new setof possible paths at time 1 does not include a sub-path that is commonto all of the paths. Similarly, the new set of possible paths at times 4and 8 do not include a sub-path that is common to all of the paths.However, the new set of possible paths at time 12 does contain asub-path that is common to all of the paths. In particular, each pathcontains the sub-path BEF. Accordingly, this sub-path can be stored inroad segment database 218, along with sub-paths from other vehicles.Furthermore, all paths can be shortened by removing the road segmentsprior to road segment F. Thus, the resulting set of shortened pathsincludes F, FH, and FI. This set of shortened paths can be stored as thenew set of possible paths, and the new set of possible paths can bestored as the set of stored possible paths.

With reference again to FIG. 3, after a sub-path is stored in roadsegment database 218, road segment processor 210 can use this sub-pathand associated information, such as current location measurements usedto generate this sub-path, timestamps, and the like, to calculate traveltimes, speeds, and the like, on the road segments traversed by anindividual vehicle. For instance, with reference again to FIG. 6,starting with the first road segment in the path traveled by a vehicle,the current location measurement closest to the starting end of the roadsegment can be selected. The timestamp for this current locationmeasurement can then be subtracted from the timestamp corresponding tothe current location measurement closest to the exiting end of the roadsegment to obtain the travel time for the vehicle across this roadsegment. The travel times and other calculations for various roadsegments along the path traveled by a vehicle can be stored in roadsegment database 218 or local memory, along with the travel times andother calculations for other vehicles along various road segments.

Because the current location measurements are unlikely to be locatedexactly at the end points of a road segment, the travel time calculatedfor a road segment can be normalized by scaling the distance between thecurrent location measurements to the total length of the road segment.The timestamps corresponding to the current location measurements canalso be normalized in a similar manner. Additionally, the average speedon a road segment can be calculated by dividing the length of the roadsegment by the travel time.

Furthermore, if the road segments traveled are short or the currentlocation measurements are highly inaccurate, a resulting error in thetravel time calculations and magnitude of error can be reduced by usinga travel time across a series of road segments. For example, if a roadsegment in the path is shorter than a specified length, such as 10 timesthe accuracy of the location measurements, the road segment can be addedto the next road segment in the path. This procedure can be repeateduntil the total length of the series of road segments reaches or exceedsthe specified length. The travel time along the series of road segmentscan then be calculated by using the current location measurementsclosest to the starting end of the first road segment and the exitingend of the last road segment in the series.

In addition, when a travel time is calculated for a series of roadsegments as described above, this combined travel time can be normalizedby scaling the times to the lengths of the road segments in the series.For example, the vehicle can be assumed to travel at a constant speedover the series of road segments, with travel time apportionedproportionally to the road segments in the series. In particular, if thetravel time is calculated as 40 seconds across a series of three roadsegments, which includes a first road segment that is 100 meters long, asecond road segment that is 200 meters long, and a third road segmentthat is 100 meters long, the travel time for the first road segment is10 seconds, the travel time for the second road segment is 20 seconds,and the travel time for the third road segment is 10 seconds. Thisprocedure can provide more accurate travel times for the individual roadsegments as the total length of the series of road segments increasesbecause any error can be averaged over a longer distance.

Referring again to FIG. 3, the travel times and other calculations forvarious road segments along the path traveled by a vehicle can be storedin road segment database 218 or local memory, along with the traveltimes and other calculations for other vehicles along various roadsegments. The calculations can include information such as vehicleidentification, entry time, exit time, travel time, average speed, andthe like.

In the present embodiment, road segment processor 210 can use thecalculations stored in road segment database 218 for multiple vehiclesto generate overall calculations for the individual road segments in aroad network. For each road segment, the calculations for each vehiclethat traversed that road segment during an specified time interval canbe gathered, and calculations such as average, median, distributionvalues, and the like, can be generated for both travel times and speedson the road segment. In addition, delay can also be calculated for eachroad segment. For example, delay can be defined as the time differencebetween the current travel time on a particular road segment and thetime a vehicle traveling at free flow speed would ideally take totraverse that road segment.

When information from multiple vehicles is used to generate calculationsfor a single road segment, road segment processor 210 can analyze thedistribution of speeds for multiple vehicles along the road segment toidentify whether two distinct peaks appear in the distribution. Thesedistinct peaks can suggest that two different lanes exist in the roadsegment and that the traffic flow differs in these two lanes. Forexample, traffic flow in a carpool lane may differ from traffic flow ina mixed flow lane along the same road segment.

In the present embodiment, the final output from road segment processor210 can be a database of traffic information for the road segments in aroad network. This database of traffic information can be stored intraffic information database 220. Some examples of the kinds ofinformation that can be stored in traffic information database 220 caninclude travel time across each road segment, average speed across eachroad segment, delay on each road segment, separate values for each laneon a multi-lane road segment, and the like. The information stored intraffic information database 220 can be used as an area wide map ofcurrent travel conditions on road segments within a road network.Accordingly, system 200 (FIG. 2) can be used to determine trafficconditions in the road network, such as the current time to travelbetween any two points in the road network.

With reference now to FIG. 10, another exemplary embodiment of stepsthat can be performed by path generator 208 (FIG. 3) is shown. Thepresent embodiment is similar in many respects to the embodiment shownin FIG. 4, except that the present embodiment includes an exemplaryprocess for handling a first current location measurement for a vehicle,an exemplary process for handling the situation when a single possiblepath traveled by a vehicle is found, and an exemplary process foridentifying a sub-path. Additionally, the current embodiment refers to aprobe as the instrument or device, such as a cellular phone, GPSreceiver, and the like, that can provide current location measurementsto a location measurement provider. Furthermore, the current embodimentrefers to road segments as links.

According to one aspect of the present embodiment, a process forhandling a first current location measurement from a vehicle isdepicted. In particular, a current location measurement, or new point,having an accuracy range can be obtained in step 400. Next, in step 402,the links in the road network having at least one point that is locatedwithin the accuracy range can be added to the set of current possiblepositions, and stored as probe data in step 1002. Probe data can bestored in memory or saved to a database until the next current locationmeasurement is obtained for the probe. Each of the stored links can alsobe stored as an initial link in a set of stored possible paths in probedata.

According to the present aspect, if the current location measurementobtained in step 400 is not the first obtained from a particular probe,saved probe data can be retrieved in step 404. In step 406, each path inthe set of stored possible paths can be compared to the set of currentpossible positions to determine if the path can be extended to eachcurrent possible position and added to the set of stored possible paths.

According to another aspect of the present embodiment, in step 1004, ifthe set of stored possible paths saved as probe data includes only asingle path, that path can represent the actual movement of the probeand vehicle. This single path can then be stored in path data in step1016, as described more fully below, for further processing by pathprocessor 208 (FIG. 12), as described below.

According to yet another aspect of the present embodiment, in step 1004,if the set of stored possible paths in the saved probe data includesmore than one path, the set of stored possible paths can be analyzed todetermine if a common sub-path occurs in each of the paths. Moreparticularly, in step 1008 common links appearing in each of the pathscan be found. Next, in step 1010, if there are not at least two commonlinks appearing in each of the paths, then probe data can be updated instep 1002 and processing pauses until another current locationmeasurement is obtained for the probe. However, if there are at leasttwo common links appearing in each of the paths, in step 1012, thesequence of road segments between the common links, or sub-path, iscompared for each of the paths. If all of the sub-paths are identical,then a single common sub-path is found in step 1014 and this sub-pathcan be stored in path data in step 1016, as described more fully below.Additionally, this sub-path can be removed from each of the paths in theset of stored possible paths to form a set of shortened paths. Theseshortened paths can then be stored as the set of stored possible pathsin probe data in step 1002.

Although various aspects are described with respect to the presentembodiment, it should be recognized that any one of these aspects or anycombination of these aspects can be used.

With reference now to FIG. 11, another exemplary embodiment of a system200 that can be used to generate traffic information is shown. Thisembodiment is similar to the embodiment shown in FIG. 3, except thatroad network generator 1102 can be used to produce road network data302. In particular, road network generator 1102 can build the datastructures in road network data 302 that can be subsequently used bypath generator 208 and road segment processor 210.

Road network generator 1102 can first define the set of road segments inthe road network. Then, road network generator 1102 can determine theconnections between road segments over which vehicles can travel. Forexample, if a vehicle is traveling in a particular direction on a roadsegment, road network generator 1102 can determine the set of roadsegments onto which the vehicle can move. More particularly, if thevehicle is traveling towards endpoint A of a road segment havingendpoints A and B, road network generator 1102 can examine all otherroad segments in the road network to determine if they have an endpointlocated within 5 meters of endpoint A. If so, road network generator1102 can add these road segments to a set of possible connecting roadsegments.

In addition, each road segment in the set of possible connecting roadsegments can be examined to determine if there are conditions that wouldprevent a vehicle traveling along the original road segment towardsendpoint A to move onto that road segment. More particularly, roadnetwork generator 1102 can use information about the road segments, suchas whether they are one-way or two-way, whether a particular roadcrossing is an overpass or tunnel, and the like, to determine whetherthe vehicle can travel from the original road segment to the possibleconnecting road segment. Accordingly, if a vehicle cannot travel throughendpoint A onto a possible connecting road segment, road networkgenerator 1102 can remove this possible connecting road segment from theset. For example, if the original road segment is one-way from endpointA to endpoint B, there are no possible connecting road segments forendpoint A since a vehicle may not travel from the original road segmentthrough endpoint A and onto any other road segment.

In the present embodiment, once road network generator 1102 examines allroad segments in the set of possible connections and removes thenon-connections, the remaining road segments in the set are those roadsegments that connect to endpoint A of the original road segment. Roadnetwork generator 1102 can then repeat this process for endpoint B.

In the present embodiment, once road network generator 1102 determinesthe set of connections between road segments, road network generator1102 can calculate the minimum time for a vehicle to traverse each roadsegment. The minimum time for a road segment can be based on factorssuch as the length of the road segment, whether the road segment is afreeway road segment or a surface street, and the like. Furthermore,time penalties may be added at particular connections. The timepenalties can be based on the angle of movement when traveling from oneroad segment to another. For example, a 180-degree turn movement mayrequire the addition of 3-6 seconds to the minimum travel time, whereasa 15-degree turn to the right may implicate no turn penalty. Otherreasonable penalties for different movements may be determinedempirically by an outside system. In addition, time dependent networkconnections can be added to road network data 302. These connections canindicate movements between road segments that are allowed at certaintimes of day and not at other times.

After road network data 302 is generated, road network generator 1102can then pass the completed road network data 302 to path generator 208,as needed. In one configuration, road network generator 1102 canorganize the road segments into a spatially oriented data structure,such as a quadtree, in which each rectangle in the quadtree contains apointer-based linked list of road segments that cross that rectangle.For instance, the data structure for each road segment can include twolinked lists, one for each endpoint of the road segment, each listcontaining the connecting road segments.

In some configurations, information from traffic information database220 can be used to update the information in road network data 302. Forinstance, road network generator 1102 can use information from trafficinformation database 220 to add new connections between road segments inthe road network. Obtaining updated information from traffic informationdatabase 220 in this manner can reduce the need to update informationfrom map data provider 1100 on a periodic basis. However, it should berecognized that information from traffic information database may not beused by road network generator in some applications.

In addition, although the above describes road network generator 1102 asgenerating road network data 302, road network generator 1102 may not benecessary in some applications. In particular, when information from mapdata provider 1100 can be used directly as road network data 302, roadnetwork generator 1102 can be omitted. Furthermore, although roadnetwork generator 1102 is not shown as part of system 200, road networkgenerator 1102 can be included in system 200 in some applications.

With reference now to FIG. 12, another exemplary embodiment of a system200 that can be used to generate traffic information is shown. Thisembodiment is similar to the embodiment shown in FIGS. 8 and 11, exceptthat the present embodiment includes provider filter feedback 1200,probe data 1202, and the sequence including path data 1204, pathprocessor 1206, link data 1208, and link aggregator 1210.

According to one aspect of the present embodiment, provider filterfeedback 1200 can perform special testing, such as detecting when alltraffic on a particular road segment has stopped or slowedsubstantially. As described above, provider specific filter 808 caneliminate current location measurements obtained from non-vehiclesources by detecting sequences of current location measurements thatexhibit uncharacteristic vehicle behavior. Furthermore, as describedabove, a primary method that can be used to detect uncharacteristicvehicle behavior is to determine whether the source is moving at asufficient speed. If a source has not moved in several minutes or if itis traveling consistently at a very slow speed, for example, less than 3mph, it can be removed from the set of sources used to provide currentlocation measurements. However, if the vehicle is stopped in traffic ormoving very slowly due to traffic congestion, current locationmeasurements from this vehicle should not be removed.

Accordingly, provider filter feedback 1200 can help detect when trafficon a particular road segment has stopped or slowed substantially. Forinstance, if a vehicle spends an unusually long amount of time, such asa minute or more in some applications, at about the same location,provider filter feedback 1200 can provide information about the vehicle,such as its current location measurements 212, the length of time spentat about the same location, and the like, along with information aboutother vehicles at or near the same location, to provider specific filter808. Provider specific filter 808 can then compare information frommultiple vehicles to determine whether other vehicles on a particularroad segment are exhibiting similar delays. On the one hand, if othervehicles are exhibiting similar delays, the delay can be due to trafficconditions, and processing of the current location measurements 212obtained from the vehicle can continue to be processed by the system. Onthe other hand, if other vehicles are not exhibiting similar delays,current location measurements 212 for the vehicle exhibiting a delay canbe discarded. In particular, either some or all of the current locationmeasurements 212 can be discarded depending on the application.Furthermore, in some applications, the vehicle itself can be removedfrom the system, and no further current location measurements can beobtained from this vehicle. In other applications, if a large number ofvehicles is used to obtain traffic information in the area, the vehiclecan be removed from the system for a limited period of time. In yetother applications, if a small number of vehicles is used to obtaintraffic information in the area, the vehicle can remain in the systemand traffic information obtained from the vehicle can be discarded untilthe vehicle begins to move normally, according to the trafficconditions.

According to another aspect of the present embodiment, the output fromprovider specific filter 808 can be a sequence of error correctedlocations grouped by probe and ordered by time, and can be stored asprobe data 1202. As described above regarding various embodiments, probedata 1202 can include a set of current possible positions and a set ofstored possible paths for a probe or vehicle. Furthermore, probe data1202 can be stored in a database for subsequent processing by probeprocessor 208, or it can be stored in memory and directly passed toprobe processor 208.

With reference to FIG. 13, probe data 1202 can include data fields usedto store information for each probe, such as probe identification 1300,X-coordinate location 1302, Y-coordinate location 1304, timestamp 1306,accuracy range 1308, and other fields 1310. More particularly, probeidentification 1300 can be a unique number or identifier that isassociated with a particular device or vehicle, such as a probe,throughout a series of current location measurements. Alternatively,non-unique identifiers can be used if the overlapping probeidentification numbers are associated with probes that aregeographically separated or if the risk of confusion is small relativeto the number of probes being tracked. For example, when using acellular phones as a probe, probe identification 1300 can be a variationof the probe's phone number or a variation of the unique hardwareidentifier built into the probe. Generally, probe identification 1300can be used to differentiate current location measurements obtained fromdifferent probes or vehicles. For example, when filtering faulty currentlocation measurements, as described above, each current locationmeasurement can be associated with previous location measurements fromthe same vehicle, based on the probe identification 1300 included in theprobe data 1202 or current location measurement 212.

Additionally, timestamp 1306 can be the amount of time, such as a numberof seconds, between the time a current location measurement is generatedby a probe and a base time or date. X and Y coordinates 1302 and 1304,respectively, can be represented in latitude and longitude, and can beconverted to meters measured from the center of a map projection, ifdesired. Furthermore, accuracy range 1308 can be expressed in meters andcan represent the radius of a circle centered at a current locationmeasurement within which the actual position of a probe should belocated.

As shown in FIG. 12, probe processor 208 can function as path generator208 in other embodiments. For instance, each current locationmeasurement can be passed from provider specific filter 808 to probeprocessor 208. Probe processor 208 can use road network data 116 tolocate all links that are located within the accuracy range associatedwith the current location measurement and store these links as a set ofcurrent possible positions in probe data 1202. As described more fullyabove, probe processor 208 can then generate a new set of possible pathsbased on this set of current possible positions and a set of storedpossible paths in probe data 1202. Furthermore, probe processor 208 canstore information about any identified sub-paths or a single path storedin the set of stored possible paths as path data 1204, either in memoryor to a database. Additionally, path data 1204 can include informationsuch as probe identification, a sequence of links, associated currentlocation measurements used to determine the sequence of links or singlepath, and the like.

According to yet another aspect of the present embodiment, the sequenceincluding path data 1204, path processor 1206, link data 1208, and linkaggregator 1210 can function together in a manner similar to roadsegment database 218 and road segment processor, as described above. Inparticular, after a sub-path is stored in path data 1204, path processor1206 can use this sub-path and associated information, such as currentlocation measurements used to generate this sub-path, timestamps, andthe like, to calculate travel times and speeds on the road segmentstraversed by an individual vehicle. For instance, with reference againto FIG. 6, starting with the first road segment in the path traveled bya vehicle, the current location measurement closest to the starting endof the road segment can be selected. The timestamp for this currentlocation measurement can then be subtracted from the timestampcorresponding to the current location measurement closest to the exitingend of the road segment to obtain the travel time for the vehicle acrossthis road segment. The travel times and other calculations for variousroad segments along the path traveled by a vehicle can be stored in pathdata 1204 or local memory, along with the travel times and othercalculations for other vehicles along various road segments.

Because the current location measurements are unlikely to be locatedexactly at the end points of a road segment, the travel time calculatedfor a road segment can be normalized by scaling the distance between thecurrent location measurements to the total length of the road segment.The timestamps corresponding to the current location measurements canalso be normalized in a similar manner. Additionally, the average speedon a road segment can be calculated by dividing the length of the roadsegment by the travel time.

Furthermore, if the road segments traveled are short or the currentlocation measurements are highly inaccurate, a resulting error in thetravel time calculations and magnitude of error can be reduced by usinga travel time across a series of road segments. For example, if a roadsegment in the path is shorter than a specified length, such as 10 timesthe accuracy of the location measurements, the road segment can be addedto the next road segment in the path. This procedure can be repeateduntil the total length of the series of road segments reaches or exceedsthe specified length. The travel time along the series of road segmentscan then be calculated by using the current location measurementsclosest to the starting end of the first road segment and the exitingend of the last road segment in the series.

In addition, when a travel time is calculated for a series of roadsegments as described above, this combined travel time can be normalizedby scaling the times to the lengths of the road segments in the series.For example, the vehicle can be assumed to travel at a constant speedover the series of road segments, with travel time apportionedproportionally to the road segments in the series. In particular, if thetravel time is calculated as 40 seconds across a series of three roadsegments, which includes a first road segment that is 100 meters long, asecond road segment that is 200 meters long, and a third road segmentthat is 100 meters long, the travel time for the first road segment is10 seconds, the travel time for the second road segment is 20 seconds,and the travel time for the third road segment is 10 seconds. Thisprocedure can provide more accurate travel times for the individual roadsegments as the total length of the series of road segments increasesbecause any error can can be averaged over a longer distance.

After the travel times and other calculations for various road segmentsalong the path traveled by a vehicle are generated by path processor1206, these calculations can be stored in link data database 1208 orlocal memory, along with the travel times and other calculations forother vehicles along various road segments. The calculations can includeinformation such as vehicle identification, entry time, exit time,travel time, average speed, and the like.

In the present embodiment, link aggregator 122 can combine informationfrom link data database 1208 from multiple probes to generate overallcalculations for the individual road segments in a road network. Foreach road segment, the calculations for each vehicle that traversed thatroad segment during a specified time interval can be gathered from linkdata database 1208, and calculations such as average, median,distribution values, and the like, can be generated for both traveltimes and speeds on the road segment. In addition, delay can also becalculated for each road segment. For example, delay can be defined asthe time difference between the current travel time on a particular roadsegment and the time a vehicle traveling at free flow speed wouldideally take to traverse that road segment.

When information from multiple vehicles is used to generate calculationsfor a single road segment, link aggregator 1210 can analyze thedistribution of speeds for multiple vehicles along the road segment toidentify whether two distinct peaks appear in the distribution. Thesedistinct peaks can suggest that two different lanes exist in the roadsegment and that the traffic flow differs in these two lanes. Forexample, traffic flow in a carpool lane may differ from traffic flow amixed flow lane along the same road segment.

In the present embodiment, the final output from link aggregator 1210can be a database of traffic information for the road segments in a roadnetwork. This database of traffic information can be stored in trafficinformation database 220. Some examples of the kinds of information thatcan be stored in traffic information database 220 can include traveltime across each road segment, average speed across each road segment,delay on each road segment, separate values for each lane on amulti-lane road segment, and the like. The information stored in trafficinformation database 220 can be used as an area wide map of currenttravel conditions on road segments within a road network. Accordingly,system 200 (FIG. 2) can be used to determine traffic conditions in theroad network, such as the current time to travel between any two pointsin the road network.

Although various aspects are described with respect to the presentembodiment, it should be recognized that any one of these aspects or anycombination of these aspects can be used. Additionally, with regard tothe present embodiment, it should be noted that provider specific filter808, probe processor 208, path processor 1206, and link aggregator 1210can be included in processor 202 (FIG. 2).

With reference now to FIG. 14 and again to FIG. 2, in one exemplaryembodiment, information stored in database 204, including any of thesub-databases, such as current location measurement 212, currentpossible positions 214, stored possible paths 216, road segment database218, traffic information database 220, and the like, can be aggregatedby time period and stored in historical database 1400. It should berecognized that other databases such as probe data 1202 (FIG. 12), pathdata 1204 (FIG. 12), and link data 1208 (FIG. 12) can also be stored indatabase 218 and historical database 1400. Furthermore, it should berecognized that only information from a single sub-database or certainsub-databases can be stored in historical database 1400 in someapplications. For instance, in one preferred embodiment, informationfrom traffic information database 220 can be stored in historicaldatabase 1400.

In the present exemplary embodiment, the information aggregated inhistorical database 1400 can be averaged for each time period.Accordingly, the historical database can include traffic informationgenerated by system 200 (FIG. 2) that is organized in time intervalssuch as 5 minute, 15 minute, 1 hour, 4 hour, daily, day of weekintervals, and the like. It should be recognized that any appropriatetime interval or period can be used.

In the present embodiment, information stored in historical database1400 can be retrieved in response to a request 1408 processed by queryprocessor 1402. Query processor 1402 can provide a range of results fromhistorical database 1400, based on a variety of input parameters. Insome applications, query processor can also provide results directlyfrom traffic information database 220. In particular, query processorcan provide results such as the following:

1. Expected current trip time: Query processor 1402 can provide anexpected current trip time based on an input of two location points. Inparticular, query processor 1402 can provide an expected amount of timeto travel across a series of road segments that form the shortest pathfrom one location point to the other, based on the most recent traveltimes stored in historical database 1400. For example, query processor1402 can use the Dijkstra shortest path algorithm, with travel times asthe weights on the individual road segments, to provide an expectedcurrent trip time. However, it should be recognized that any othershortest path algorithm using road segment weights can also be used.

2. Expected historical trip time: Query processor 1402 can provide anexpected historical trip time based on an input of two location points,a date or day of the week, and a time. In particular, query processor1402 can provide an expected amount of time to travel across a series ofroad segments that form the shortest path from one location point to theother, based on the travel times stored in historical database 1400 thatmatch the inputted travel time and date or day of the week. Forinstance, given an input of Friday at 3:11 p.m., query processor 1402can provide an expected historical trip time based on information storedin historical database 1400 for Friday during the 3:10 p.m. to 3:15 p.m.interval. In some applications, query processor 1402 can use theDijkstra shortest path algorithm, with travel times as the weights onthe individual road segments, to provide an expected historical triptime. However, it should be recognized that any other shortest pathalgorithm using road segment weights can also be used.

3. Expected current arrival time: Query processor 1402 can provide anexpected current arrival time based on an input of a starting locationpoint and a destination location point. In particular, query processor1402 can calculate the expected current trip time for the two locationpoints, as described above, and can add this current expected trip timeto to the current time to produce the expected time to arrive at thedestination location point.

4. Expected historical arrival time: Query processor 1402 can provide anexpected historical arrival time based on an input of a startinglocation point, a destination location point, and a starting time anddate or day of the week. In particular, query processor 1402 cancalculate the expected historical trip time for the two location points,as described above, and can add this expected historical trip time tothe starting time to produce the expected time to arrive at thedestination location point.

5. Expected current trip time along a route: Query processor 1402 canprovide an expected current trip time along a route based on an input oftwo location points and a route between them that includes a series ofroad segments connecting the first location point to the second locationpoint. In particular, the query processor can provide an expected amountof time to travel along the route, based on the most recent travel timesstored in historical database 1400.

6. Expected historical trip time along a route: Query processor 1402 canprovide an expected historical trip time along a route based on an inputof two location points, a route between them that includes a series ofroad segments connecting the first location point to the second locationpoint, and a date or day of the week and a time. In particular, queryprocessor 1402 can provide an expected amount of time to travel alongthe route based on the travel times stored in historical database 1400that match the travel time and date. For instance, given an input ofFriday at 3:11 p.m., query processor 1402 can provide an expectedhistorical trip time along a route based on information stored inhistorical database 1400 for Friday during the 3:10 p.m. to 3:15 p.m.interval.

7. Expected current arrival time along a route: Query processor 1402 canprovide an expected current arrival time along a route based on an inputof a starting location point, a destination location point, and a routebetween them. In particular, query processor 1402 can calculate theexpected current trip time along the route, as described above, and canadd this current expected trip time along the route to to the currenttime to produce the expected time to arrive at the destination locationpoint.

8. Expected historical arrival time along a route: Query processor 1402can provide an expected historical arrival time along a route based onan input of a starting location point, a destination location point, aroute between them, and a starting time and date or day of the week. Inparticular, query processor 1402 can calculate the expected historicaltrip time along the route, as described above, and can add this expectedhistorical trip time along the route to the starting time to produce theexpected time to arrive at the destination location point.

9. Unexpected delay on a road segment: Query processor 1402 can providean unexpected delay on a road segment based on an input of a roadsegment. In particular, query processor 1402 can retrieve fromhistorical database 1400 the most recently calculated current delay andthe historical delay corresponding to the day of week and time thatmatches the current day of week and time. Query processor 1402 can thencalculate and provide the unexpected delay on a road segment bysubtracting the historical delay from the current delay. If theunexpected delay yields a negative value, query processor 1402 canprovide an unexpected delay of zero.

10. Unexpected delay on a route: Query processor 1402 can provide anunexpected delay on a route based on an input of a route. In particular,query processor 1402 can calculate the unexpected delay on each roadsegment in the route. Then, query processor 1402 can provide theunexpected delay on the route by summing the unexpected delays for eachof these road segments.

In the present embodiment, the results provided by query processor 1402can be formatted by an information formatter 1404. In particular,information formatter 1404 can format the results into a form that isappropriate for a final distribution channel. Information formatter 1404can then provide the formatted results to one or more distributionmodules 1406. Depending on the final distribution channel desired,information formatter 1404 can produce formatted results such as thefollowing:

1. Maps: Information formatter 1404 can provide a map of a desired area.In particular, information formatter 1404 can generate an image of theroad segments located in the desired area. The image can include encodedinformation for each road segment, such as travel time, average speed,delay, unexpected delay, and the like, along each road segment.Information can be encoded on the map by highlighting the road segmentsand providing an associated legend. Road segments can be highlightedwith different shades of color, different line widths, different linestyles, and the like. The encoded information can reflect either currentor historical values. In addition, particular routes can be shown on amap as a series of highlighted road segments.

2. Text: Information formatter 1404 can also provide text such as traveltime along a route, travel time along a shortest route, arrival timealong a route, arrival time along a shortest route, delay along a route,delay along a shortest route, unexpected delay along a route, unexpecteddelay along a shortest route, a route as an ordered list of roadsegments, directions as an ordered list of road segments withinstructions about where to turn, and the like.

In the present embodiment, distribution module 1406 can provide aninterface between information formatter 1404 and external distributionchannels. In particular, distribution module 1406 can deliverinformation from information formatter 1404 to various devices invarious forms such as: to web pages in the form of text, to web pages inthe form of maps, to cellular phones in the form of text, to cellularphones in the form of voice, to cellular phones in the form of maps, toPersonal Digital Assistants in the form of text, to Personal DigitalAssistants in the form of voice, to Personal Digital Assistants in theform of maps, to in-vehicle displays in the form of text, to in-vehicledisplays in the form of voice, to in-vehicle displays in the form ofmaps, to roadside displays in the form of text, to roadside displays inthe form of maps, to kiosks in the form of text, to kiosks in the formof maps, to radios in the form of voice, to pagers in the form of text,and the like.

In addition, it should be recognized that query processor 1402,information formatter 1404, and distribution module 1406 can be includedin processor 202 (FIG. 2).

Although the present invention has been described with respect tocertain embodiments, examples, and applications, it will be apparent tothose skilled in the art that various modifications and changes may bemade without departing from the invention.

1. A method of determining a path traveled by a vehicle in a roadnetwork having a plurality of road segments connected into a pluralityof paths, the method comprising: obtaining a current locationmeasurement for the vehicle, wherein said current location measurementhas an accuracy range; determining to road segments located within maidaccuracy range of said current location measurement to form a set ofcurrent possible positions for the vehicle; retrieving a set of storedpossible paths for the vehicle; generating a new set of possible pathsbased on said set of current possible positions and said set of storedpossible paths; and storing said new set of possible paths as said setof stored possible paths.
 2. The method of claim 1, further comprisingfiltering said current location measurement.
 3. The method of claim 2,wherein said set of stored possible paths includes a stored possiblepath having a previous current location measurement, wherein saidprevious current location measurement includes a first timestamp;wherein said current location measurement includes a second timestamp;and wherein said filtering includes: eliminating said current locationmeasurement if the difference between said first timestamp and saidsecond timestamp is less than a minimum travel time, storing saidcurrent location measurement if the difference between said firsttimestamp and said second timestamp is greater than said minimum traveltime.
 4. The method of claim 2, wherein said filtering includeseliminating said current location measurement if it is obtained from anon-vehicle source.
 5. The method of claim 1, further comprising:storing a sub-path that is common to all paths in said new set ofpossible pate, wherein said sub-path includes a common road segmentremoving road segments from each path in said new set of possible pathsthat precede said common road segment to Loran a set of shortened paths;storing said set of shortened paths as said new set of possible paths;and storing said sub-path in broad segment database.
 6. The method ofclaim 1, wherein said generating a new set of possible paths includes:extending each stored possible path to each current possible position toform a set of extended paths; storing each extended path having anavailable travel time that is greater than a minimum travel time; andremoving each extended path having an available travel time that is lessthan said minimum travel time.
 7. The method of claim 6, wherein saidset of stored possible paths includes a stored possible path having aprevious current location measurement, wherein said previous currentlocation measurement includes a first timestamp; wherein said currentlocation measurement includes a second timestamp; and wherein saidavailable travel time is the difference between said first timestamp andsaid second timestamp.
 8. The method of claim 1, wherein said obtainingincludes obtaining a location measurement from a probe.
 9. The method ofclaim 8, wherein said probe is a GPS receiver.
 10. The method of claim8, wherein said probe is a cellular phone.
 11. A system for determininga path traveled by a vehicle along road segments in a road network, thesystem comprising: a processor configured to; receive a current locationmeasurement for the vehicle, determine the road segments located withinan accuracy range of said current location measurement to form a set ofcurrent possible positions for said vehicle, and generate a new set ofpossible paths based on said set of current possible positions and a setof stored possible paths for the vehicle; and a database configured to:store said set of stored possible paths forte vehicle, and store saidnew set of possible paths as said set of stored possible paths.
 12. Thesystem of claim 11, wherein said processor is further configured tofilter said current locution measurement.
 13. A computer-readable mediumcontaining computer executable instructions for causing a computer todetermine a path traveled by a vehicle in a road network having aplurality of road segments connected into a plurality of paths,comprising instructions for: obtaining a current location measurementfor the vehicle, wherein said current location measurement has anaccuracy range; determining the road segments located within saidaccuracy range of said current location measurement to form a set ofcurrent possible positions for the vehicle; retrieving a set of storedpossible paths for the vehicle; generating a new set of possible pathsbased on said set of current possible positions and said set of storedpossible paths; and storing said new set of possible paths as said setof stored possible paths.
 14. The computer-readable medium of claim 13,further comprising filtering said current location measurement.
 15. Thecomputer-readable medium of claim 14, wherein said set of storedpossible paths includes a stored possible path having a previous currentlocation measurement, wherein said previous current location measurementincludes a first timestamp; wherein said current location measurementincludes a second timestamp, and wherein said filtering includesinstructions for: eliminating said current location measurement if thedifference between said first timestamp and said second timestamp isless than a minimum travel time, storing said current locationmeasurement if the difference between said first timestamp and saidsecond timestamp is greater than said minimum travel time.
 16. Thecomputer-readable medium of claim 14, wherein said filtering includeseliminating said current location measurement if it is obtained from anon-vehicle source.
 17. The computer-readable medium of claim 13,further comprising instructions for: storing a sub-path that is commonto all path, in said new set of possible pat., wherein said sub-pathincludes a common road segment; removing road segments from each path insaid new set of possible paths that precede said common road segment toform a set of shortened paths; storing said set of shortened paths assaid new set of possible paths; and storing said sub-path in a roadsegment database.
 18. The computer-readable medium of claim 13, whereinsaid generating a new set of possible paths includes instructions for:extending each stored possible path to each current possible position toform a set of extended paths; storing each extended path having anavailable travel time that is greater than a minimum travel time; endremoving each extended path having an available travel time that is lessthan said minimum travel time.
 19. The computer-readable medium of claim18, wherein said set of stored possible paths includes a stored possiblepath having a previous current location measurement; wherein saidprevious current location measurement includes a first timestamp;wherein said current location measurement includes a second timestamp;and wherein said available travel time is the difference between saidfirst timestamp and said second timestamp.
 20. The computer-readable ofclaim 13, wherein said obtaining includes obtaining a locationmeasurement from a probe, a GPS receiver, or a cellular phone.